
:root{font-family:Arial,Helvetica,sans-serif;color:#172c43;background:#f3f6f9}
*{box-sizing:border-box}body{margin:0}header{background:#003b70;color:white;padding:1.2rem max(2rem,calc((100vw - 1300px)/2));display:flex;justify-content:space-between;align-items:center;gap:1rem}
header strong{font-size:1.55rem}header small{font-size:.88rem;display:block;margin-top:.3rem}nav{background:#0a538e;padding:.5rem max(2rem,calc((100vw - 1300px)/2));display:flex;gap:.5rem;flex-wrap:wrap}
header a.hub{color:white;font-size:.9rem;text-decoration:underline;white-space:nowrap}
nav button{color:white;background:transparent;border:0;border-radius:.3rem;padding:.7rem 1rem;font-weight:700;cursor:pointer;font-size:.95rem}nav button.active,nav button:hover{background:#fff;color:#003b70}
main{max-width:1300px;margin:1.5rem auto;padding:0 1.5rem 4rem}h1{font-size:1.65rem;margin:0 0 .4rem}p.note{color:#485e72;margin:.2rem 0 1.2rem}
.athlete-records{margin:.3rem 0 .65rem;color:#003b70;line-height:1.5}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.8rem;margin:1rem 0 1.4rem}.card{background:white;border:1px solid #d4e1eb;border-radius:.4rem;padding:1rem}.card b{display:block;font-size:1.35rem;color:#003b70}.card span{font-size:.87rem;color:#546778}
.panel{background:white;border:1px solid #d4e1eb;border-radius:.4rem;padding:1.1rem;margin-top:1rem}.controls{display:flex;gap:.7rem;flex-wrap:wrap;margin:1rem 0}input,select{font:inherit;border:1px solid #9db6ca;border-radius:.25rem;padding:.55rem;min-width:170px}input{flex:1;min-width:230px}
.controls button{font:inherit;color:white;background:#003b70;border:0;border-radius:.25rem;padding:.55rem 1rem;cursor:pointer}.controls button:disabled{opacity:.45;cursor:default}
.season-history table{table-layout:fixed;min-width:760px}.season-history th:nth-child(1){width:11%}.season-history th:nth-child(2){width:31%}.season-history th:nth-child(3),.season-history th:nth-child(4){width:5%}.season-history th:nth-child(5){width:8%}.season-history th:nth-child(6){width:12%}.season-history th:nth-child(7){width:7%}.season-history th:nth-child(8){width:14%}.season-history th:nth-child(9){width:7%}.season-history th,.season-history td{padding-left:.5rem;padding-right:.5rem}tfoot td{font-weight:700;background:#e5eef6;border-top:2px solid #003b70}.scroll{max-width:100%;overflow:auto}table{width:100%;border-collapse:collapse;font-size:.9rem;white-space:nowrap}th{background:#003b70;color:white;text-align:left;padding:.65rem;position:sticky;top:0;cursor:pointer}td{padding:.62rem;border-bottom:1px solid #e3eaf0}tbody tr:nth-child(even){background:#f2f6fa}td.num,th.num{text-align:right}a{color:#064d83;text-decoration:underline;cursor:pointer}small.muted{color:#63778a}
.finish-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;align-items:start}.finish-grid .panel{margin-top:0}.conference-detail{white-space:normal;line-height:1.4}.record-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:1rem}.record-grid .panel{margin-top:0}.event-index{display:flex;flex-wrap:wrap;gap:.55rem;margin:1rem 0 1.5rem}.event-link{display:inline-block;padding:.55rem .8rem;border:1px solid #9db6ca;border-radius:.3rem;background:white;text-decoration:none;font-weight:700}.event-link:hover,.event-link:focus{background:#e2eef7}.return-top{display:inline-block;margin-top:1rem}.event-section{scroll-margin-top:1rem;min-width:0}.relay-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:start}.relay-grid .panel{margin-top:0}.relay-grid table{white-space:normal;table-layout:fixed;font-size:.88rem}.relay-grid th,.relay-grid td{padding:.45rem}.relay-grid th:nth-child(1),.relay-grid td:nth-child(1){width:2.5rem}.relay-grid th:nth-child(2),.relay-grid td:nth-child(2){width:5.5rem}.relay-grid th:nth-child(4),.relay-grid td:nth-child(4){width:6.4rem}.relay-members{overflow-wrap:anywhere}.athlete-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:start}.athlete-grid .panel{margin-top:0}.athlete-relay-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:start}.athlete-relay-grid .panel{margin-top:0}.athlete-relay-grid table{table-layout:fixed;white-space:normal;font-size:.86rem}.athlete-relay-grid th,.athlete-relay-grid td{padding:.45rem}.athlete-relay-grid th:first-child,.athlete-relay-grid td:first-child{width:6.7rem}.athlete-relay-grid .relay-lineup{white-space:nowrap;font-size:.82rem;letter-spacing:-.012em}.athlete-relay-grid .athlete-meet{overflow:visible}.athlete-grid table{white-space:normal;table-layout:fixed;font-size:.88rem}.athlete-grid th,.athlete-grid td{padding:.45rem}.athlete-grid th:nth-child(1),.athlete-grid td:nth-child(1){width:2.5rem}.athlete-grid th:nth-child(2),.athlete-grid td:nth-child(2){width:7.5rem}.athlete-grid th:nth-child(3),.athlete-grid td:nth-child(3){width:6.5rem}.athlete-grid th:nth-child(5),.athlete-grid td:nth-child(5){width:4.5rem}.athlete-meet{overflow-wrap:anywhere}.athlete-meet small{display:block;color:#526b80;margin-top:.2rem;font-size:.82rem}.record-badge{display:inline-block;padding:.12rem .35rem;background:#003b70;color:#fff;border-radius:.2rem;font-size:.74rem;vertical-align:middle;margin-top:.2rem}.athlete-grid tr.team-record td,.athlete-relay-grid tr.team-record td,.relay-grid tr.team-record td{background:#e4f0fb}.athlete-grid tr.team-record td:first-child{background:#e4f0fb!important}.relay-members small{display:block;color:#526b80;margin-top:.2rem;font-size:.82rem}.event-section h2{margin:.2rem 0 1rem}.event-table th:first-child,.event-table td:first-child{position:sticky;left:0;z-index:1;background:#fff}.event-table th:first-child{z-index:3;background:#003b70}.event-table tbody tr:nth-child(even) td:first-child{background:#f2f6fa}.quicklinks{display:flex;flex-wrap:wrap;gap:.6rem}.quicklinks button{background:#003b70;color:white;border:0;border-radius:.3rem;padding:.7rem 1rem;font:inherit;font-weight:700;cursor:pointer}.quicklinks button:hover,.quicklinks button:focus{background:#0a538e}footer{color:#526b80;margin:2rem 0;font-size:.83rem}
.season-meet-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:start}.season-meet-grid .panel{padding:0;margin-top:0;border-top:4px solid #003b70;overflow:hidden}.season-meet-head{padding:1rem 1.1rem}.season-meet-head strong{color:#003b70}.season-meet-head h3{margin:.35rem 0}.season-meet-detail{margin:.35rem 0;color:#294b67;font-weight:600;line-height:1.35}.season-meet-grid table{table-layout:fixed;white-space:normal;font-size:.84rem}.season-meet-grid th,.season-meet-grid td{padding:.45rem}.season-meet-grid th:nth-child(1),.season-meet-grid td:nth-child(1){width:8.4rem}.season-meet-grid td:first-child{white-space:nowrap;font-size:.78rem;letter-spacing:-.02em}.season-meet-grid th:nth-child(3),.season-meet-grid td:nth-child(3){width:5.3rem}.season-meet-grid th:nth-child(4),.season-meet-grid td:nth-child(4){width:4.3rem}.season-meet-grid .relay-lineup{font-size:.8rem;white-space:normal}.report-links{display:inline-flex;flex-wrap:wrap;gap:.4rem;color:#064d83;font-size:.84rem}.report-inline{display:block;margin-top:.22rem;font-size:.8rem}.season-meet-foot{padding:.7rem 1.1rem;display:flex;gap:.8rem;flex-wrap:wrap;align-items:center}.season-meet-foot .return-top{margin:0 0 0 1rem}
@media(max-width:850px){.relay-grid,.athlete-grid,.athlete-relay-grid,.finish-grid,.season-meet-grid{grid-template-columns:1fr}}
@media(max-width:700px){header{padding:1rem}nav{padding:.4rem}main{padding:0 .8rem 3rem}.record-grid{grid-template-columns:1fr}}
/* Track record book: shared swimming palette and compact statistical layout. */
body{font-size:16px}header small,small.muted{font-size:.9rem}nav a{color:white;text-decoration:none;padding:.7rem 1rem;font-weight:bold;border-radius:.3rem}nav a.active,nav a:hover,nav a:focus{color:#003b70;background:#fff}.program-switch{display:flex;gap:.4rem}.program-switch a{color:white;text-decoration:none;border:1px solid #92b2cc;padding:.55rem .8rem;border-radius:4px}.program-switch a.active{color:#003b70;background:white}.section-links{display:flex;gap:.6rem;flex-wrap:wrap;margin:1rem 0}.section-links a,.pill{display:inline-block;padding:.45rem .7rem;border:1px solid #9db6ca;border-radius:4px;background:#fff;text-decoration:none}.section-links a.active{background:#003b70;color:white}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start}.panel h2{color:#003b70;font-size:1.2rem;margin:.1rem 0 1rem}.panel h3{font-size:1.05rem;color:#003b70}.section-heading{background:#003b70;color:white;padding:.8rem 1rem;margin:1.6rem 0 .6rem;border-radius:4px;font-size:1.3rem}.badge{font-size:.8rem;border-radius:3px;background:#e3edf7;padding:.15rem .35rem;display:inline-block;white-space:nowrap}.flag{background:#fff0cc;color:#684600}table{font-size:.9rem;white-space:normal}th{z-index:3;cursor:default}th button{font:inherit;font-weight:bold;color:inherit;background:transparent;border:0;padding:0;cursor:pointer;text-align:inherit;width:100%;line-height:1.35}th button::after{content:' ↕';font-size:.8em;opacity:.7}td{vertical-align:top}td:first-child,th:first-child{position:sticky;left:0;z-index:2;background:white}th:first-child{background:#003b70;z-index:4}tbody tr:nth-child(even) td:first-child{background:#f2f6fa}td.num{font-variant-numeric:tabular-nums;white-space:nowrap}td .muted{display:block;margin-top:.2rem}td a{line-height:1.4}.scroll{max-height:650px;overflow:auto}.scroll table{min-width:650px}.two-col .scroll table{min-width:450px}.results-table table{min-width:850px}.names{min-width:170px;max-width:320px}.relay-names{font-size:.88rem;line-height:1.5}.note{font-size:.95rem;line-height:1.5}.empty{color:#526b80;padding:1rem}.breadcrumb{font-size:.9rem;margin-bottom:1rem;color:#526b80}.cards .card a{font-weight:bold;font-size:1.35rem}.card span{font-size:.9rem}.site-foot{max-width:1300px;margin:0 auto;padding:0 1.5rem 2rem}.count{font-size:.95rem;color:#536e82;margin:.7rem 0}.scope-note{border-left:4px solid #7b9cb6;background:#edf3f8;padding:.65rem 1rem;font-size:.92rem;line-height:1.5}.jump{scroll-margin-top:1rem}.controls label{font-size:.9rem;color:#294b67;display:flex;align-items:center;gap:.5rem}.controls select{min-width:140px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #d58e00;outline-offset:3px}@media(max-width:900px){.two-col{grid-template-columns:1fr}header{padding:1rem;align-items:flex-start}header strong{font-size:1.25rem}nav{padding:.4rem;gap:.2rem}nav a{padding:.6rem}.program-switch a{padding:.5rem}main{padding:0 .8rem 2rem}.panel{padding:.8rem}}@media print{nav,.controls,.program-switch{display:none}.scroll{max-height:none;overflow:visible}.two-col{display:block}header{background:white;color:#003b70}.panel{break-inside:avoid}}

/* Keep statistical entries readable at full width; scroll on small screens. */
.personal-bests, .season-details { display: block; }
.personal-bests .panel, .season-details .panel { margin-bottom: 24px; }
.scroll table { width: 100%; font-size: .9rem; }
.scroll th, .scroll td { white-space: nowrap; }
.scroll th button { white-space: nowrap; }
.results-table td.names { white-space: nowrap; min-width: 210px; max-width: none; }
.personal-bests table { min-width: 850px; }
.personal-bests th, .personal-bests td { padding: 11px 12px; }
.athlete-directory table { min-width: 990px; }

/* Tables run the full page length; narrow screens only scroll horizontally. */
.scroll { max-height: none; overflow-x: auto; overflow-y: visible; }
.panel { background: transparent; border: 0; box-shadow: none; padding: 0; }

/* Shared typography and semantic alignment throughout the record book. */
h1, h2, h3, h4, h5, h6, th, nav a, header strong, header small,
.program-switch a, .section-links a, .card span { text-transform: uppercase; }
.scroll th.left, .scroll td.left { text-align: left; }
.scroll th.center, .scroll td.center, .scroll th.num, .scroll td.num { text-align: center; }
.accolades-table table { min-width: 950px; }

/* Relay labels must take their own column width, never overlap the mark. */
.scroll td.names { max-width: none; white-space: nowrap; }

.individual-event-table table { min-width: 1080px; }
.event-section { margin: 2rem 0; }
.event-section-links { display: flex; gap: 1.5rem; align-items: baseline; margin-top: .65rem; }
.event-section-links .return-top { margin-top: 0; }

.season-summary-table table { min-width: 1100px; font-size: .84rem; }
.season-summary-table th, .season-summary-table td { padding: .65rem .5rem; }
.season-coach { margin: 1rem 0; }
.season-coach strong { text-transform: uppercase; }
.season-championships { margin-bottom: 1.6rem; }
.career-change { font-size: .875rem; white-space: nowrap; color: #38556c; }
a.career-change { text-decoration-style: dotted; text-underline-offset: .15em; }
.recent-records-table table { min-width: 1050px; }
